let names = ["华为", "vivo", "oppo"];
let colors = ["白色", "黑色", "蓝色"];
let owners = ["coderqian", "rifo"];
function sku(...array) {
  let res = [];
  function helper(prev, currentIndex) {
    let chunk = array[currentIndex];
    let isLast = array.length - 1 === currentIndex;
    for (let i of chunk) {
      let cur = prev.concat(i); // 将当前的元素 加入到cur数组中
      //    到了最后一个 推入 并放入结果数组
      if (isLast) {
        res.push(cur);
      } else {
        helper(cur, currentIndex + 1); // 继续递归下一个数组里的内容
      }
    }
  }
  helper([], 0);
  return res;
}
let res = sku(names, colors, owners);
console.log(res);
// [
//     [ '华为', '白色', 'coderqian' ],
//     [ '华为', '白色', 'rifo' ],
//     [ '华为', '黑色', 'coderqian' ],
//     [ '华为', '黑色', 'rifo' ],
//     [ '华为', '蓝色', 'coderqian' ],
//     [ '华为', '蓝色', 'rifo' ],
//     [ 'vivo', '白色', 'coderqian' ],
//     [ 'vivo', '白色', 'rifo' ],
//     [ 'vivo', '黑色', 'coderqian' ],
//     [ 'vivo', '黑色', 'rifo' ],
//     [ 'vivo', '蓝色', 'coderqian' ],
//     [ 'vivo', '蓝色', 'rifo' ],
//     [ 'oppo', '白色', 'coderqian' ],
//     [ 'oppo', '白色', 'rifo' ],
//     [ 'oppo', '黑色', 'coderqian' ],
//     [ 'oppo', '黑色', 'rifo' ],
//     [ 'oppo', '蓝色', 'coderqian' ],
//     [ 'oppo', '蓝色', 'rifo' ]
//   ]
